#pragma once 
#include <iostream>
#include <fstream> // 包含文件流头文件，用于文件操作
#include "Car.h"  // 包含Car类头文件，以便使用

using namespace std;

// 定义学生类
class Student {
public:
    string id;  // 学号
    string name;  // 姓名
    Car car;  // 分配的小车

    // 默认构造函数
    Student() : car() {}  // 初始化小车对象car

    // 参数构造函数
    Student(string sid, string sname, Car scar) : id(sid), name(sname), car(scar) {}

    // 各属性的set方法
    void setID(string newID) {
        id = newID;
    }

    void setName(string newName) {
        name = newName;
    }

    void setCar(Car newCar) {
        car = newCar;
    }

    // 打印学生信息
    void print() {
        cout << "学生学号: " << id << endl;
        cout << "学生姓名: " << name << endl;
        cout << "被分配的小车编号: " << car.id << endl;
        car.print();  // 调用小车的print方法打印详细信息
    }

      // 保存学生信息到本地文件
    void save(ofstream& outFile) { // 修改参数类型为ofstream&
        if (!outFile.is_open()) {
            cerr << "文件未打开，无法保存信息" << endl;
            return;
        }
        outFile << "学生学号: " << id << endl;
        outFile << "学生姓名: " << name << endl;
        outFile << "被分配的小车编号: " << car.id << endl;
        car.print();  // 调用小车的printCarDetails方法打印详细信息
        outFile << "----------------------------------------" << endl;
    }
};